#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll ret,sz;  
string s;
void dfs(ll n,ll path){
	if (path>=4){//
		ret++;
		return;
	}
	if (n>=sz)return;
	
	if (path==0 && s[n]=='2'){
		dfs(n+1,path+1);
	}else if (path==1 && s[n]=='0'){
		dfs(n+1,path+1);
	}else if (path==2 && s[n]=='2'){
		dfs(n+1,path+1);
	}else if (path==3 && s[n]=='3'){
		dfs(n+1,path+1);
	}
	
	dfs(n+1,path);
}
int main()
{

  for (ll i=1;i<=2023;i++){
  	string ss=to_string(i);
  	for (ll j=0;j<ss.size();j++){
  		if (ss[j]=='2' || ss[j]=='0' || ss[j]=='3'){
  			s+=ss[j];
		}
	}
  }
  cout<<s<<endl;
  sz=s.size();
  cout<<sz<<endl;
  dfs(0,0);
  cout<<ret;
  return 0;
}
